main(List<String> args) {
  // 1.明确的声明
  String name = "lyc";

  // 2.类型推导(var/final/const)
  // 类型推导的方式虽然没有明确的指定变量的类型，但是变量有自己明确的类型
  // 2.1 var声明变量
  var age = 20;

  // 2.2 final声明常量
  final height = 1.75;

  // 2.3 const声明常量
  const address = "山西省";

  // 2.4 final和const区别
  //  const必须赋值 常量值（编译期间需要有一个确定的值）
  //  final可以通过计算/函数获取一个值（运行期间来确定一个值）

  // const date1 = DateTime.now(); error
  final date2 = DateTime.now();

  // final p1 = Person("lyc");
  // final p2 = new Person("lyc");
  // print(identical(p1, p2));

  const p1 = Person("lyc");
  const p2 = const Person("lyc");

  print(identical(p1, p2));
}

class Person {
  final name;

  const Person(this.name);
}
